#define _CRT_SECURE_NO_WARNINGS 1
#include"List.h"
void Test1()
{
	List lt = { 0 };
	
	InitList(&lt);
	Push(lt.head, 5, 100);

	Push(lt.head, 2, 3);
	Push(lt.head, 4, 2);
	Push(lt.head, 5, 6);
	Push(lt.head, 5, 1000);
	Push(lt.head, 2, 2);

	
	Print(lt.head);
	printf("\n%d", PolyLength(&lt));
	DeletePop(lt.head->next);
	DeletePop(lt.head->next);
	DeletePop(lt.head->next);
	Print(lt.head);
	DeletePop(lt.head->next);
	Print(lt.head);
	Destroy(&lt);

}
void  Test2()
{
	List lt1 = { 0 };
	List lt2 = { 0 };
	InitList(&lt1);
	InitList(&lt2);
	Push(lt1.head, 2, 3);
	Print(lt1.head);
	Push(lt1.head, 22, 1);
	Print(lt1.head);
	Push(lt1.head, 3, 5);
	Print(lt1.head);
	Push(lt1.head, 4, 8);
	Print(lt1.head);
	Push(lt1.head, 5, 5);
	Print(lt1.head);
	Push(lt1.head, 7, 2);
	Print(lt1.head);
	Push(lt1.head, 3, 4);
	Print(lt1.head);



	Push(lt2.head, 2, 3);
	Push(lt2.head, 22, 1);
	Push(lt2.head, 3, 5);
	Push(lt2.head, 4, 8);
	Push(lt2.head, 5, 5);
	Push(lt2.head, 7, 2);
	Push(lt2.head, 3, 4);
	Push(lt2.head, 3, 100);
	Print(lt2.head);

	AddList(&lt1, &lt2);
	Print(lt1.head);
	//Destroy(&lt1);

}
void Test3()
{
	List lt1 = { 0 };
	List lt2 = { 0 };
	InitList(&lt1);
	InitList(&lt2);
	Push(lt1.head, 1, 1);
	Push(lt1.head, 1, 3);
	Push(lt1.head, 1, 5);
	Push(lt1.head, 1, 7);
	Push(lt1.head, 1, 9);

	Push(lt2.head, 1, 2);
	Push(lt2.head, 1, 4);

	

	Print(lt1.head);
	Print(lt2.head);


	AddList(&lt1, &lt2);
	Print(lt1.head);
	Destroy(&lt1);
}
Test4()
{
	List lt1 = { 0 };
	List lt2 = { 0 };
	InitList(&lt1);
	InitList(&lt2);
	//Push(lt1.head, 1, 1);
	//Push(lt1.head, 1, 3);
	//Push(lt1.head, 1, 5);
	//Push(lt1.head, 1, 7);
	//Push(lt1.head, 1, 9);

	//Push(lt2.head, 1, 2);
	//Push(lt2.head, 1, 4);



	//Print(lt1.head);
	//Print(lt2.head);


	//SubtractList(&lt1, &lt2);
	//Print(lt1.head);
	//Destroy(&lt1);\

	Push(lt1.head, 1, 1);
	Push(lt1.head, 1, 2);
	Push(lt1.head, 1, 1);


	Push(lt2.head, 1, 1);
	Push(lt2.head, 1, 2);
	Push(lt2.head, 1, 3);
	Push(lt2.head, 1, 4);

	Print(lt1.head);
	Print(lt2.head);


	SubtractList(&lt1, &lt2);
	Print(lt1.head);
	Destroy(&lt1);
}
void Test5()
{
	List lt1 = { 0 };
	List lt2 = { 0 };
	InitList(&lt1);
	InitList(&lt2);
	CreatList(&lt1, 5);
	CreatList(&lt2, 5);
	Print(lt1.head);
	Print(lt2.head);


	SubtractList(&lt1, &lt2);
	Print(lt1.head);
	Destroy(&lt1);
}
void Test6()
{
	List lt1 = { 0 };
	List lt2 = { 0 };
	InitList(&lt1);
	InitList(&lt2);

	Push(lt1.head, 3, 2);
	Push(lt1.head, 4, 5);

	Push(lt1.head, 6, 6);



	Push(lt2.head, 1, 2);
	Push(lt2.head, 3, 3);
	Push(lt2.head, 5, 4);

	Print(lt1.head);
	Print(lt2.head);

	Multi(&lt2, &lt1);
	Print(lt2.head);

}
void Test()
{
	List lt1 = { 0 };
	List lt2 = { 0 };

	InitList(&lt1);
	InitList(&lt2);

	CreatList(&lt1, 5);
	Print(lt1.head);

	CreatList(&lt2, 5);
	Print(lt2.head);

	AddList(&lt1, &lt2);
	Print(lt1.head);

}
int main()
{
	//Test1();
	//Test2();
	//Test3();
	//Test4();
	//Test5();
	//Test6();
	Test();
}
//1 2 2 3 3 4 4 5 5 6 2 4 5 4 6 7 1 4 2 3
